home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / include / linux / if_addr.h < prev    next >
C/C++ Source or Header  |  2008-10-24  |  1KB  |  61 lines

  1. #ifndef __LINUX_IF_ADDR_H
  2. #define __LINUX_IF_ADDR_H
  3.  
  4. #include <linux/netlink.h>
  5.  
  6. struct ifaddrmsg
  7. {
  8.     __u8        ifa_family;
  9.     __u8        ifa_prefixlen;    /* The prefix length        */
  10.     __u8        ifa_flags;    /* Flags            */
  11.     __u8        ifa_scope;    /* Address scope        */
  12.     __u32        ifa_index;    /* Link index            */
  13. };
  14.  
  15. /*
  16.  * Important comment:
  17.  * IFA_ADDRESS is prefix address, rather than local interface address.
  18.  * It makes no difference for normally configured broadcast interfaces,
  19.  * but for point-to-point IFA_ADDRESS is DESTINATION address,
  20.  * local address is supplied in IFA_LOCAL attribute.
  21.  */
  22. enum
  23. {
  24.     IFA_UNSPEC,
  25.     IFA_ADDRESS,
  26.     IFA_LOCAL,
  27.     IFA_LABEL,
  28.     IFA_BROADCAST,
  29.     IFA_ANYCAST,
  30.     IFA_CACHEINFO,
  31.     IFA_MULTICAST,
  32.     __IFA_MAX,
  33. };
  34.  
  35. #define IFA_MAX (__IFA_MAX - 1)
  36.  
  37. /* ifa_flags */
  38. #define IFA_F_SECONDARY        0x01
  39. #define IFA_F_TEMPORARY        IFA_F_SECONDARY
  40.  
  41. #define    IFA_F_NODAD        0x02
  42. #define IFA_F_OPTIMISTIC    0x04
  43. #define    IFA_F_HOMEADDRESS    0x10
  44. #define IFA_F_DEPRECATED    0x20
  45. #define IFA_F_TENTATIVE        0x40
  46. #define IFA_F_PERMANENT        0x80
  47.  
  48. struct ifa_cacheinfo
  49. {
  50.     __u32    ifa_prefered;
  51.     __u32    ifa_valid;
  52.     __u32    cstamp; /* created timestamp, hundredths of seconds */
  53.     __u32    tstamp; /* updated timestamp, hundredths of seconds */
  54. };
  55.  
  56. /* backwards compatibility for userspace */
  57. #define IFA_RTA(r)  ((struct rtattr*)(((char*)(r)) + NLMSG_ALIGN(sizeof(struct ifaddrmsg))))
  58. #define IFA_PAYLOAD(n) NLMSG_PAYLOAD(n,sizeof(struct ifaddrmsg))
  59.  
  60. #endif
  61.